//
//  XGStatusModel.swift
//  TodayNews
//
//  Created by monkey on 2020/2/22.
//  Copyright © 2020 itcast. All rights reserved.
//

import HandyJSON

// cell 中间内容的样式
enum XGStatusType: Int, HandyJSONEnum
{
    case commentOrQuoteContent = 109   // 引用或者评论别人的内容
    case commentOrQuoteOthers = 212    // 引用或者评论别人的内容
    case postArticleOrVideo = 151      // 发布了视频和文章
    case postContent = 200             // 发布了文字内容
    case answerQuestion = 1028         // 回答了问题    group 的  item_type 7 问答
    case proposeQuestion = 1029        // 提出了问题
    case postContentAndVideo = 211     // 发布了文字内容和视频
    case postVideo = 150               // 发布了视频
    case forwardArticle = 110          // 转发了文章 origin_group 不为空了
    case postSmallVideo = 300          // 小视频
}

enum XGStatusGroupMediaType: Int, HandyJSONEnum
{
    case postArticle = 1   // 发布了文章
    case postVideo = 2     // 发布了视频
}

struct XGStatusModel: HandyJSON
{
    /// 内容文字
    var content: String?
    /// 评论数
    var comment_count: Int = 0
    /// 点赞数
    var digg_count: Int = 0
    /// 转发数
    var forward_count: Int = 0
    /// 用户信息
    var user: XGUserInfo?
    /// 创建时间
    var create_time: UInt64 = 0
    /// 缩略图数组
    var thumb_image_list: [XGImageInfo]?
    /// 大图数组
    var large_image_list: [XGImageInfo]?
    /// cell类型
    var item_type: XGStatusType = .postContent
    /// 视频或文章
    var group: XGGroup?
    /// 引用别人的动态
    var origin_thread: XGOriginThread?
    /// 动态id
    var id: UInt64 = 0
}

struct XGImageInfo: HandyJSON
{
    /// 宽度
    var width: Int = 0
    /// 高度
    var height: Int = 0
    /// 图片地址
    var url: String?
}

struct XGGroup: HandyJSON
{
    /// 类型
    var media_type: XGStatusGroupMediaType = .postArticle
    /// 标题
    var title: String?
    /// 图片
    var thumb_url: String?
}

struct XGOriginThread: HandyJSON
{
    /// 内容
    var content:String?
    /// 缩略图数组
    var thumb_image_list: [XGImageInfo]?
    /// 大图数组
    var large_image_list: [XGImageInfo]?
    /// 用户信息
    var user: XGUserInfo?
    /// 动态id
    var thread_id: UInt64 = 0
}

struct XGAnswerQuestionModel: HandyJSON
{
    /// 问题
    var answer: XGAnswer?
    /// 回答
    var question: XGQuestion?
}

struct XGAnswer: HandyJSON
{
    /// 展示时间
    var show_time: String?
    /// 点赞数
    var digg_count: Int = 0
    /// 浏览数
    var brow_count: Int = 0
    /// 回答
    var text: String?
    
    mutating func mapping(mapper: HelpingMapper)
    {
        mapper <<<
        self.text <-- "content_abstract.text"
    }
}

struct XGQuestion: HandyJSON
{
    var title: String?
}
